Klar,
der HTML Code ist der responseText des xhr Aufrufs. Du kannst den in eine Zelle schreiben. Das Problem dabei ist, eine Zelle nimmt maximal 32767 Zeichen auf. Der Rest wird abgeschnitten. Man kann mit Split() natürlich die einzelnen HTML-Zeilen in die Tabelle schreiben oder eine Auswahl auf den Body oder sonst welche Tags vornehmen. Leider hast Du aber nicht gesagt, was Dein Ziel ist.
Für den ganzen Quelltext:
Sub HTMLmitXHRinZelle()
Const url As String = "https://www.heise.de/" '<-- anpassen
With CreateObject("MSXML2.XMLHTTP.6.0")
.Open "GET", url, False
.send
If .Status = 200 Then
Cells(1, 1) = .responseText
Else
Cells(1, 1) = "Seite nicht geladen"
End If
End With
End Sub
Kann man auch in eine Text-Datei schreiben, dann ist alles vorhanden:
Sub HTMLmitXHRinDatei()
Const url As String = "https://www.heise.de/" '<-- anpassen
With CreateObject("MSXML2.XMLHTTP.6.0")
.Open "GET", url, False
.send
If .Status = 200 Then
Close
Open "E:\.HTMLCode.txt" For Output As #1 'Pfad anpassen
Print #1, .responseText
Close
Cells(1, 1) = .responseText
Else
MsgBox = "Seite nicht geladen"
End If
End With
End Sub
Um z.B. mit getElementsByTagName() auf dem DOM (Document Object Model) arbeiten zu können, um bestimmte HTML-Elemente auszulesen, muss man zusätzlich mit einem htmlFile-Objekt arbeiten.
https://www.herber.de/forum/cgi-bin/callthread.pl?index=1825794#1825878
Viele Grüße,
Zwenn
|